/*
* Copyright 2025 NXP
* NXP Proprietary. This software is owned or controlled by NXP and may only be used strictly in
* accordance with the applicable license terms. By expressly accepting such terms or by downloading, installing,
* activating and/or otherwise using the software, you are agreeing that you have read, and that you agree to
* comply with and are bound by, such license terms.  If you do not agree to be bound by the applicable license
* terms, then you may not retain, install, activate or otherwise use the software.
*/

#include "lvgl.h"
#include <stdio.h>
#include "gui_guider.h"
#include "events_init.h"
#include "widgets_init.h"
#include "custom.h"


void setup_scr_screen_bule(lv_ui *ui)
{
    static bool inited = false;     // 静态变量，程序生命周期内只创建一次
    if (inited) return;             // 已经初始化过，直接返回
    inited = true;                  // 标记为已初始化

    //Write codes screen_bule
    ui->screen_bule = lv_obj_create(NULL);
    lv_obj_set_size(ui->screen_bule, 240, 280);
    lv_obj_set_scrollbar_mode(ui->screen_bule, LV_SCROLLBAR_MODE_OFF);

    //Write style for screen_bule, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
    lv_obj_set_style_bg_opa(ui->screen_bule, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(ui->screen_bule, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_grad_dir(ui->screen_bule, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);

    //Write codes screen_bule_BACK_Button
    ui->screen_bule_BACK_Button = lv_btn_create(ui->screen_bule);
    ui->screen_bule_BACK_Button_label = lv_label_create(ui->screen_bule_BACK_Button);
    lv_label_set_text(ui->screen_bule_BACK_Button_label, "" LV_SYMBOL_CLOSE "");
    lv_label_set_long_mode(ui->screen_bule_BACK_Button_label, LV_LABEL_LONG_WRAP);
    lv_obj_align(ui->screen_bule_BACK_Button_label, LV_ALIGN_CENTER, 0, 0);
    lv_obj_set_style_pad_all(ui->screen_bule_BACK_Button, 0, LV_STATE_DEFAULT);
    lv_obj_set_width(ui->screen_bule_BACK_Button_label, LV_PCT(100));
    lv_obj_set_pos(ui->screen_bule_BACK_Button, 20, 10);
    lv_obj_set_size(ui->screen_bule_BACK_Button, 200, 32);

    //Write style for screen_bule_BACK_Button, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
    lv_obj_set_style_bg_opa(ui->screen_bule_BACK_Button, 228, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(ui->screen_bule_BACK_Button, lv_color_hex(0x767676), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_grad_dir(ui->screen_bule_BACK_Button, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_width(ui->screen_bule_BACK_Button, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_radius(ui->screen_bule_BACK_Button, 25, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_shadow_width(ui->screen_bule_BACK_Button, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_color(ui->screen_bule_BACK_Button, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_font(ui->screen_bule_BACK_Button, &lv_font_Acme_Regular_25, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_opa(ui->screen_bule_BACK_Button, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_align(ui->screen_bule_BACK_Button, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);

    //Write codes screen_bule_Blue_1
    ui->screen_bule_Blue_1 = lv_img_create(ui->screen_bule);
    lv_obj_add_flag(ui->screen_bule_Blue_1, LV_OBJ_FLAG_CLICKABLE);
    lv_img_set_src(ui->screen_bule_Blue_1, &_BLUE_1_64x64);
    lv_img_set_pivot(ui->screen_bule_Blue_1, 50,50);
    lv_img_set_angle(ui->screen_bule_Blue_1, 0);
    lv_obj_set_pos(ui->screen_bule_Blue_1, 88, 60);
    lv_obj_set_size(ui->screen_bule_Blue_1, 64, 64);

    //Write style for screen_bule_Blue_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
    lv_obj_set_style_img_recolor_opa(ui->screen_bule_Blue_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_img_opa(ui->screen_bule_Blue_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_radius(ui->screen_bule_Blue_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_clip_corner(ui->screen_bule_Blue_1, true, LV_PART_MAIN|LV_STATE_DEFAULT);

    //Write codes screen_bule_BLE_1
    ui->screen_bule_BLE_1 = lv_btn_create(ui->screen_bule);
    ui->screen_bule_BLE_1_label = lv_label_create(ui->screen_bule_BLE_1);
    lv_label_set_text(ui->screen_bule_BLE_1_label, "BLE Bluetooth Connection");
    lv_label_set_long_mode(ui->screen_bule_BLE_1_label, LV_LABEL_LONG_WRAP);
    lv_obj_align(ui->screen_bule_BLE_1_label, LV_ALIGN_CENTER, 0, 0);
    lv_obj_set_style_pad_all(ui->screen_bule_BLE_1, 0, LV_STATE_DEFAULT);
    lv_obj_set_width(ui->screen_bule_BLE_1_label, LV_PCT(100));
    lv_obj_set_pos(ui->screen_bule_BLE_1, 26, 160);
    lv_obj_set_size(ui->screen_bule_BLE_1, 188, 45);

    //Write style for screen_bule_BLE_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
    lv_obj_set_style_bg_opa(ui->screen_bule_BLE_1, 226, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(ui->screen_bule_BLE_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_grad_dir(ui->screen_bule_BLE_1, LV_GRAD_DIR_HOR, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_grad_color(ui->screen_bule_BLE_1, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_main_stop(ui->screen_bule_BLE_1, 80, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_grad_stop(ui->screen_bule_BLE_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_width(ui->screen_bule_BLE_1, 1, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_opa(ui->screen_bule_BLE_1, 93, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_color(ui->screen_bule_BLE_1, lv_color_hex(0x020202), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_side(ui->screen_bule_BLE_1, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_radius(ui->screen_bule_BLE_1, 10, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_shadow_width(ui->screen_bule_BLE_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_color(ui->screen_bule_BLE_1, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_font(ui->screen_bule_BLE_1, &lv_font_Acme_Regular_17, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_opa(ui->screen_bule_BLE_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_align(ui->screen_bule_BLE_1, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);

    //Write codes screen_bule_WIFI_2
    ui->screen_bule_WIFI_2 = lv_btn_create(ui->screen_bule);
    ui->screen_bule_WIFI_2_label = lv_label_create(ui->screen_bule_WIFI_2);
    lv_label_set_text(ui->screen_bule_WIFI_2_label, "BluFi To WIFI Connection");
    lv_label_set_long_mode(ui->screen_bule_WIFI_2_label, LV_LABEL_LONG_WRAP);
    lv_obj_align(ui->screen_bule_WIFI_2_label, LV_ALIGN_CENTER, 0, 0);
    lv_obj_set_style_pad_all(ui->screen_bule_WIFI_2, 0, LV_STATE_DEFAULT);
    lv_obj_set_width(ui->screen_bule_WIFI_2_label, LV_PCT(100));
    lv_obj_set_pos(ui->screen_bule_WIFI_2, 26, 215);
    lv_obj_set_size(ui->screen_bule_WIFI_2, 188, 45);

    //Write style for screen_bule_WIFI_2, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
    lv_obj_set_style_bg_opa(ui->screen_bule_WIFI_2, 226, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(ui->screen_bule_WIFI_2, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_grad_dir(ui->screen_bule_WIFI_2, LV_GRAD_DIR_HOR, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_grad_color(ui->screen_bule_WIFI_2, lv_color_hex(0x2195f6), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_main_stop(ui->screen_bule_WIFI_2, 80, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_bg_grad_stop(ui->screen_bule_WIFI_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_width(ui->screen_bule_WIFI_2, 1, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_opa(ui->screen_bule_WIFI_2, 93, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_color(ui->screen_bule_WIFI_2, lv_color_hex(0x020202), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_border_side(ui->screen_bule_WIFI_2, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_radius(ui->screen_bule_WIFI_2, 10, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_shadow_width(ui->screen_bule_WIFI_2, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_color(ui->screen_bule_WIFI_2, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_font(ui->screen_bule_WIFI_2, &lv_font_Acme_Regular_17, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_opa(ui->screen_bule_WIFI_2, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_text_align(ui->screen_bule_WIFI_2, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);

    //Write codes screen_bule_line_1
    ui->screen_bule_line_1 = lv_line_create(ui->screen_bule);
    static lv_point_t screen_bule_line_1[] = {{0, 0},{200, 0},};
    lv_line_set_points(ui->screen_bule_line_1, screen_bule_line_1, 2);
    lv_obj_set_pos(ui->screen_bule_line_1, 20, 146);
    lv_obj_set_size(ui->screen_bule_line_1, 200, 4);

    //Write style for screen_bule_line_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
    lv_obj_set_style_line_width(ui->screen_bule_line_1, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_line_color(ui->screen_bule_line_1, lv_color_hex(0x757575), LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_line_opa(ui->screen_bule_line_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
    lv_obj_set_style_line_rounded(ui->screen_bule_line_1, true, LV_PART_MAIN|LV_STATE_DEFAULT);

    //The custom code of screen_bule.


    //Update current screen layout.
    lv_obj_update_layout(ui->screen_bule);

    //Init events for screen.
    events_init_screen_bule(ui);
}
